package com.dudu.service;

import java.util.List;

import com.dudu.bean.ChargingRuleBean;
import com.dudu.bean.ParamBean;
import com.dudu.bean.RuleAccountBean;
import com.dudu.bean.ZTreeBean;

import core.CoreDao;

/**
 * 能力规则设置接口类
 * @author 危东
 * @date 2016-4-26
 */
public interface IRuleService {
	/**
     * 插入规则信息
	 * @param bean
	 * @return
	 */
	public String doInsertChargingRule(ChargingRuleBean bean);
	/**
	 * 修改规则信息
	 * @param bean
	 * @return
	 */
	public String doUpdateChargingRule(ChargingRuleBean bean);
	/**
	 * 根据AppKey、账号标识和能力类型查询配置
	 * @param dao
	 * @param appKey
	 * @param custAccount
	 * @param abilityType
	 * @return
	 */
	public ChargingRuleBean queryChargingRule(String appKey, String custAccount, String abilityType);
	/**
	 * 查询规则信息
	 * @return
	 */
	public List<ChargingRuleBean>  queryAllRuleByAppCust(String appkey,String custAccount);
	/**
	 * 通过应用账号更改组织账号中的“默认使用”，全部更改为所需要的配置
	 * @param jsonList
	 * @return
	 */
	public String doDeleteChargingRule(List<RuleAccountBean> jsonList);
	/**
	 * 插入账号-能力规则关系数据，方法中统一，先根据账号id删除相应对应关系，后进行插入操作
	 * @param jsonList
	 * @return
	 */
	public String doRuleAccountInsert(List<RuleAccountBean> jsonList);
	/**
	 * 查询规则信息总数量
	 * @param paramSql
	 * @return
	 */
	public int getTotalRule(String paramSql);
	/**
	 * 查询所有规则信息，并转换成所需的ztree格式
	 * @param pageSql
	 * @param paramSql
	 * @return
	 */
	public List<ChargingRuleBean> queryRule(String pageSql,String paramSql);
	/**
	 * 设置默认选项
	 * @param id
	 * @return
	 */
	public int doEditDefaultUsing(String id);
	
	/**
	 * 查询所有规则信息，并转换成所需的ztree格式
	 * @param pageSql
	 * @param paramSql
	 * @return
	 */
	public  List<ZTreeBean>   queryAllRule(String pageSql,String paramSql);
	/**
	 * 查询所有父节点信息列表
	 * @param parentId
	 * @return
	 */
	public List<ParamBean> queryAllParentId(String parentId);
	/**
	 * 根据父能力标识删除某应用/计费账号下的规则
	 * @param app_key
	 * @param cust_account
	 * @param type
	 * @return
	 */
	public int deleteRuleAccouunt(String app_key,String cust_account,String type);
	
}
